package Solutions

func countSquares(matrix [][]int) int {
    var n = len(matrix)
    var m = len(matrix[0])
    var ans=0
    for i := 1; i < n; i++{
        for j :=1; j < m;j++{
            if matrix[i][j]==0{
                continue
            }
            ans++
            if matrix[i-1][j-1]==0{
                continue
            }
            var t=min_1277(matrix[i-1][j],matrix[i][j-1],matrix[i-1][j-1])
            ans+=t
            matrix[i][j]+=t
        }
    }
    for i:=0;i<n;i++{
        if matrix[i][0]==1{
            ans++
        }
    }
    for i:=1;i<m;i++{
        if matrix[0][i]==1{
            ans++
        }
    }
    return ans
}

func min_1277(i ,j,k int)int{
   if i>j{
       i=j
   }
   if i>k{
       i=k
   }
   return i
}